Offline Storage
-
An object conforming to the
MGLOfflineRegion
protocol determines which resources are required by anMGLOfflinePack
object. At present, only instances ofMGLTilePyramidOfflineRegion
may be used asMGLOfflinePack
regions, but additional conforming implementations may be added in the future.Declaration
Objective-C
@protocol MGLOfflineRegion <NSObject>
-
MGLOfflineStorage implements a singleton (shared object) that manages offline packs. All of this class’s instance methods are asynchronous, reflecting the fact that offline resources are stored in a database. The shared object maintains a canonical collection of offline packs in its
See morepacks
property.Declaration
Objective-C
@interface MGLOfflineStorage : NSObject
-
A block to be called once an offline pack has been completely created and added.
An application typically calls the
-resume
method on the pack inside this completion handler to begin the download.Declaration
Objective-C
typedef void (^MGLOfflinePackAdditionCompletionHandler)( MGLOfflinePack *_Nullable, NSError *_Nullable)
Parameters
pack
Contains a pointer to the newly added pack, or
nil
if there was an error creating or adding the pack.error
Contains a pointer to an error object (if any) indicating why the pack could not be created or added.
-
Posted by the shared
MGLOfflineStorage
object whenever anMGLOfflinePack
object encounters an error while downloading. The error may be recoverable and may not warrant the user’s attention. For example, the pack’s implementation may attempt to re-request failed resources based on an exponential backoff strategy or upon the restoration of network access.The
object
is theMGLOfflinePack
object that encountered the error. TheuserInfo
dictionary contains the error object in theMGLOfflinePackErrorUserInfoKey
key.Declaration
Objective-C
extern NSString *const _Nonnull MGLOfflinePackErrorNotification
-
The key for an
NSError
object that is encountered in the course of downloading an offline pack. This key is used in theuserInfo
dictionary of anMGLOfflinePackErrorNotification
notification. The error’s domain isMGLErrorDomain
. SeeMGLErrorCode
for possible error codes.Declaration
Objective-C
extern NSString *const _Nonnull MGLOfflinePackErrorUserInfoKey
-
The key for an
NSNumber
object that indicates the maximum number of Mapbox-hosted tiles that may be downloaded and stored on the current device. This key is used in theuserInfo
dictionary of anMGLOfflinePackMaximumMapboxTilesReachedNotification
notification. Call-unsignedLongLongValue
on the object to receive theuint64_t
-typed tile limit.Declaration
Objective-C
extern NSString *const _Nonnull MGLOfflinePackMaximumCountUserInfoKey
-
Posted by the shared
MGLOfflineStorage
object when the maximum number of Mapbox-hosted tiles has been downloaded and stored on the current device.The
object
is theMGLOfflinePack
object that reached the tile limit in the course of downloading. TheuserInfo
dictionary contains the tile limit in theMGLOfflinePackMaximumCountUserInfoKey
key.Once this limit is reached, no instance of
MGLOfflinePack
can download additional tiles from Mapbox APIs until already downloaded tiles are removed by calling the-[MGLOfflineStorage removePack:withCompletionHandler:]
method. Contact your Mapbox sales representative to have the limit raised.Declaration
Objective-C
extern NSString *const _Nonnull MGLOfflinePackMaximumMapboxTilesReachedNotification
-
Posted by the shared
MGLOfflineStorage
object when anMGLOfflinePack
object’s progress changes. The progress may change due to a resource being downloaded or because the pack discovers during the download that more resources are required for offline viewing. This notification is posted whenever any field in theprogress
property changes.The
object
is theMGLOfflinePack
object whose progress changed. TheuserInfo
dictionary contains the pack’s current state in theMGLOfflinePackStateUserInfoKey
key and details about the pack’s current progress in theMGLOfflinePackProgressUserInfoKey
key. You may also consult the pack’sstate
andprogress
properties, which provide the same values.If you only need to observe changes in a particular pack’s progress, you can alternatively observe KVO change notifications to the pack’s
progress
key path.Declaration
Objective-C
extern NSString *const _Nonnull MGLOfflinePackProgressChangedNotification
-
The key for an
NSValue
object that indicates an offline pack’s current progress. This key is used in theuserInfo
dictionary of anMGLOfflinePackProgressChangedNotification
notification. Call-MGLOfflinePackProgressValue
on the object to receive theMGLOfflinePackProgress
-typed progress.Declaration
Objective-C
extern NSString *const _Nonnull MGLOfflinePackProgressUserInfoKey
-
A block to be called once an offline pack has been completely invalidated and removed.
Avoid any references to the pack inside this completion handler: by the time this completion handler is executed, the pack has become invalid, and any messages passed to it will raise an exception.
Declaration
Objective-C
typedef void (^MGLOfflinePackRemovalCompletionHandler)(NSError *_Nullable)
Parameters
error
Contains a pointer to an error object (if any) indicating why the pack could not be invalidated or removed.
-
The key for an
NSNumber
object that indicates an offline pack’s current state. This key is used in theuserInfo
dictionary of anMGLOfflinePackProgressChangedNotification
notification. Call-integerValue
on the object to receive theMGLOfflinePackState
-typed state.Declaration
Objective-C
extern NSString *const _Nonnull MGLOfflinePackStateUserInfoKey
-
An
MGLOfflinePack
represents a collection of resources necessary for viewing a region offline to a local database.To create an instance of
See moreMGLOfflinePack
, use the+[MGLOfflineStorage addPackForRegion:withContext:completionHandler:]
method. A pack created using-[MGLOfflinePack init]
is immediately invalid.Declaration
Objective-C
@interface MGLOfflinePack : NSObject
-
A structure containing information about an offline pack’s current download progress.
See moreDeclaration
Objective-C
struct MGLOfflinePackProgress {}
-
The state an offline pack is currently in.
See moreDeclaration
Objective-C
enum MGLOfflinePackState : NSInteger {}
-
Methods for round-tripping
See moreMGLOfflinePackProgress
values.Declaration
Objective-C
@interface NSValue (MGLOfflinePackAdditions)
-
An offline region defined by a style URL, geographic coordinate bounds, and range of zoom levels.
See moreDeclaration
Objective-C
@interface MGLTilePyramidOfflineRegion : NSObject <MGLOfflineRegion, NSSecureCoding, NSCopying>